package com.bgs.travelapp.userManagement.service;

import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.result.CommonResult;
import com.bgs.travelapp.userManagement.entity.UserManagementEntity;
import org.springframework.web.multipart.MultipartRequest;

import java.util.List;

/**
 * gpd 2022-07-10 20:13:00
 * 后端展示--用户管理
 */
public interface UserManagementService {

    /**
     * 用户新增 （后端---用户管理）
     * gpd 2022-07-10 20:13:00
     * @Parma multipartRequest, userManagement
     */
    Integer saveUser(MultipartRequest multipartRequest, UserManagementEntity userManagementEntity);

    /**
     * 分页全查+模糊查（用户名称、登录名称、性别、角色名称、年龄） （后端---用户管理）
     * gpd 2022-07-10 20:23:00
     * @param pageRequest
     * @param userName
     * @param loginName
     * @param sex
     * @param roleName
     * @param age
     * @return
     */
    PageResult userAllList(PageRequest pageRequest, String userName, String loginName, String sex, String roleName, String age);

    /**
     * （后端---用户管理）
     * 用户修改
     * gpd 2022-07-10 20:36:00
     * @param userManagementEntity
     * @return
     */
    Integer updateUser(MultipartRequest multipartRequest, UserManagementEntity userManagementEntity);

    /**
     * （后端---用户管理）
     * 删除用户
     * gpd 2022-07-10 20:48:00
     * @param id
     * @return
     */
    Integer deleteUser(Integer id);

    /**
     * 根据账号密码登录
     * 后端--登录
     * gpd 2022-08-22 10点30分
     * @param loginName
     * @param password
     * @return
     */
    CommonResult loginByUser(String loginName, String password);

    /**
     * 获取用户权限
     * 后端---动态菜单
     * gpd 2022-08-22 11点17分
     * @param loginName
     * @return
     */
    CommonResult getUserRights(String loginName);

    /**
     * 新增修改校验登录账号
     * 后端---后端用户账号管理
     * gpd 2022-08-24 15点24分
     * @param loginName
     * @return
     */
    List<UserManagementEntity> checkLoginName(String loginName);
}
